(COMMENT THIS IS THE STANDARD MIT LISP DEFINING FUNCTION) (DM DEFUN (L) (PROG (NAME VARS BODY TYPE) (SETQ NAME (CADR L)) (COND ((EQUAL (LENGTH L) 4) (SETQ TYPE (QUOTE EXPR)) (SETQ L (CDDR L))) (T (SETQ TYPE (CADDR L)) (SETQ L (CDDDR L)))) (SETQ VARS (CAR L)) (SETQ BODY (CADR L)) (RETURN (LIST (QUOTE DEFPROP) NAME (LIST (QUOTE LAMBDA) VARS BODY) TYPE))))